home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / you-075a.lha / you-075a / bitvecs.em < prev    next >
Lisp/Scheme  |  1992-06-18  |  1KB  |  48 lines

  1. ;; Eulisp Module
  2. ;; Author: pab
  3. ;; File: bitvecs.em
  4. ;; Date: Tue Apr 28 11:00:02 1992
  5. ;;
  6. ;; Project:
  7. ;; Description: 
  8. ;;
  9.  
  10. (defmodule bitvecs
  11.   (standard0
  12.    (rename ((bit-vector-length bv-length)) bit-vectors)
  13.    )
  14.   ()
  15.   
  16.   (defstruct bit-vector ()
  17.     ((str initarg str accessor bit-vector-str))
  18.     constructor (make-bit-vector size)
  19.     predicate bit-vector-p)
  20.  
  21.   (defmethod initialize-instance ((proto bit-vector) lst)
  22.     (let ((obj (call-next-method))
  23.       (size (car (cdr lst))))
  24.       ((setter bit-vector-str) obj (primitive-make-bit-vector size))
  25.       obj))
  26.  
  27.   (defun bit-vector-ref (bv n)
  28.     (primitive-bit-vector-ref (bit-vector-str bv) n))
  29.  
  30.   (defun bit-vector-length (bv n)
  31.     (bv-length (bit-vector-str bv) n))
  32.   
  33.   (defun bit-vector-ref-setter (bv n x)
  34.     ((setter primitive-bit-vector-ref) (bit-vector-str bv) n x)
  35.     x)
  36.  
  37.   ((setter setter) bit-vector-ref bit-vector-ref-setter)
  38.  
  39.   (defmethod generic-prin ((x bit-vector) stream)
  40.     (generic_generic_prin\,BitVector (bit-vector-str x) stream))
  41.  
  42.   (export bit-vector-ref bit-vector-ref-setter bit-vector make-bit-vector bit-vector-length)
  43.       
  44.      
  45.   ;; end module
  46.   )
  47.  
  48.